Various computer components request access to a common communication platform in order to share the usage of various peripheral devices or memory. The common communication platform is typically provided by a bus system for data transfer operations. When several components (hereinafter referred to as participants) request grant to the bus system simultaneously, an arbitration procedure determines which of the requesting participants receives grant to the bus.
A simple arbitration procedure can be realised with a round robin arbitration algorithm, in which the participants receive grant to the bus in a fixed cyclic order. This algorithm has the disadvantage, that access to the bus is granted irrespectively from the fact whether a participant requested for access or not. Thus, the idle time of the bus can increase to a large number of bus cycles.
Another common arbitration procedure is based on priority scheduling. Here, each data transfer operation is assigned with a distinct priority label. Depending on this priority label, which may be static or dynamic, the corresponding participant receives grant to the bus. A danger of priority scheduling is starvation, in which operations with low priority are not given the opportunity to receive a grant.
Various improvements and modifications under round robin and the priority algorithm have been made and implemented, in order to optimize the arbitration procedure. Nevertheless, most arbitration procedures have the disadvantage that the arbitration of a participant needs a certain amount of bus cycles.
In U.S. Pat. No. 5,255,373 a method to eliminate the arbitration delay when the system bus is idle is suggested. Furthermore, it describes a system which detects when a system bus is idle and which keeps the system bus in an arbitration state. Therefore, each participant detects autonomously whether the bus is idle or not.
When the bus is idle, it is kept in an arbitration state, to allow a subsequent arbitration to take place immediately. A disadvantage of this invention is, that all data transfer operations have to be equal in size. Therefore, various data transfer operations that are different in size cannot be processed in an effective way with this invention.
U.S. Pat. No. 6,094,692 describes a method to minimize the transmit underflow and packet latency of data packets transmitted between a host computer and a network. Here, the byte length of each received packet is determined and the time needed to fill a FIFO buffer is measured. Furthermore, the output transmission rate of the FIFO buffer is determined. Depending on the byte length of each received packet, the output transmission rate and the fill time for the FIFO buffer, a transmit start point is set. In particular when the output transmission rate is larger than the input transmission rate of the FIFO buffer, the transmit start point is delayed in order to prevent transmit underflow. The method comprises the calculation of the removal and the fill time of the FIFO buffer, but it does not include any kind of arbitration procedure.
The present invention aims to provide an improved arbitration method and arbitration apparatus for the interruptionless utilization of a bus transmitting data between a plurality of participants.